package com.appredes.model;

import java.util.ArrayList;

/**
 * @author Cloud Strife
 * @version 1.0
 * @created 22-oct-2011 06:39:28 p.m.
 */
public class Ranges {

	/**
	 * Arreglo que contiene el rango de las Clases de direccion IP.
	 */
	private ArrayList<String> rangeOfClasses;
	/**
	 * Vector con el numero de Redes posibles en cada clase de direccion IP.
	 */
	private ArrayList<Integer> numberOfNets;
	/**
	 * Numero de host por clase de direccion IP.
	 */
	private ArrayList<Integer> numberOfHost;
	/**
	 * Tipos de mascaras de red segun el tipo de clase de la direccion IP.
	 */
	private ArrayList<String> maskOfNet;
	/**
	 * Tipos de direccion de Broadcast de las clases de direccion IP.
	 */
	private ArrayList<String> broadcastID;

	public Ranges(){
		
		rangeOfClasses = new ArrayList<String>();
		numberOfNets = new ArrayList<Integer>();
		numberOfHost = new ArrayList<Integer>();
		maskOfNet = new ArrayList<String>();
		
		rangeOfClasses.add("0.0.0.0 hasta 127.255.255.255");
		numberOfNets.add(128);
		numberOfHost.add(16777214);
		maskOfNet.add("255.0.0.0");
		
		rangeOfClasses.add("128.0.0.0 hasta 191.255.255.255");
		numberOfNets.add(16384);
		numberOfHost.add(65534);
		maskOfNet.add("255.255.0.0");
		
		rangeOfClasses.add("192.0.0.0 hasta 223.255.255.255");
		numberOfNets.add(2097150);
		numberOfHost.add(254);
		maskOfNet.add("255.255.255.0");
		
		rangeOfClasses.add("224.0.0.0 hasta 239.255.255.255");
		numberOfNets.add(0);
		numberOfHost.add(0);
		maskOfNet.add("No aplica");
		
		rangeOfClasses.add("240.0.0.0 hasta 255.255.255.255");
		numberOfNets.add(0);
		numberOfHost.add(0);
		maskOfNet.add("No Aplica");

	}

	public void finalize() throws Throwable {

	}
	/**
	 * Devuelve un rango de direcciones IP.
	 * 
	 * @param Tipo
	 */
	public String getRangeClass(int Tipo){
            
            return rangeOfClasses.get(Tipo);
	}

	/**
	 * Devuelve el numero de redes posibles en una clase.
	 * 
	 * @param Tipo
	 */
	public int getNumberOfNets(int Tipo){
            
            return numberOfNets.get(Tipo);
	}

	/**
	 * Devuelve el numero de hosts posibles en una clase de red.
	 * 
	 * @param Tipo
	 */
	public int getNumberofHosts(int Tipo){
            
            return numberOfHost.get(Tipo);
	}

	/**
	 * Devuelve una direccion de mascara de red.
	 * 
	 * @param Tipo
	 */
	public String getTypeOfMask(int Tipo){
            
            return maskOfNet.get(Tipo);
	}

	/**
	 * Devuelve una direccion de Broadcast
	 * 
	 * @param Tipo
	 */
	public String getTypeOfBroadcast(int Tipo){
		return "";
	}
}//end Ranges

